'''
1. 请写出列表支持的所有方法及说明（例如: append 向列表末尾添加元素）
    答：列表支持的方法如下：
        append    在尾部添加元素
        insert    向指定位置插入值
        extent    尾部批量增加
        remove    按值来删除
        pop       按索引进行删除
        clear     全部清空
        reverse   反转顺序
        sort      自行指定排序规则
        index     查找某个值的索引值，不找到则报错
        count     统计某个值了现的个数

2. 说明列表的浅拷贝和深拷贝的区别
    答：浅拷贝复制地址，当其中一个变量名修改值时，关联该地址的变量均发生修改
        深拷贝则是将复制的值放到另外一个内存地址，新的变量名指向新的地址，修改其值不会影响其他

3. 说明列表和元组的相同点和不同点
           列表                元组
   不同    可修改               不可修改
   相同    可索引               可索引
   相同    有序                 有序

4. 请写出字符串支持的所有方法及说明（例如: lower 返回字符串的小写）
    答：字符串支持的方法有：
        lower           转为小写
        upper           转为大写
        split           拆分为列表
        rsplit          右拆分
        splitlines      行拆分
        strip           清除两端的指定内容
        partition       按照切分参数，分为三部分
        rpartition      按照参数选择右侧检索，分为三部分
        startswith      检查是否以某子串开头
        endswith        检查是否以某子串结尾
        encode          对字符串编码
        find            查询子串
        join            对容器拼接
        replace         将指定内容进行子串替换
        formate         内容格式化
'''
# 5. 有如下一个字符串变量logs，请统计出每种请求类型的数量（提示：空格分割的第2列是请求类型），得到如下输出：
# POST 2
# GET 3
logs = '''
111.30.144.7 "POST /mock/login/?t=GET HTTP/1.1" 200 
111.30.144.7 "Get /mock/users/?t=POST HTTP/1.1" 200 
111.13.100.92 "Post /mock/login/ HTTP/1.1" 200 
223.88.60.88 "GET /mock/users/?t=POST HTTP/1.1" 200 
111.30.144.7 "GET /mock/users/ HTTP/1.1" 200 
'''
logs = logs.upper().replace('"', '')  # 消除双引号，全部改为大写模式
slst = logs.split(" ")  # 将字符串进行拆分生成列表,请求类型出现在1,6,11,,,的位置上
pcnt, gcnt = 0, 0
for i in range(1, 26, 5):
    if slst[i] == "POST": pcnt += 1
    if slst[i] == "GET": gcnt += 1
print(f'POST {pcnt}')
print(f'GET {gcnt}')
